//###############
// FILE : GUIIView.java
// WRITER : Lior Zimmerman liorz06 066462300
// WRITER : Ohad Dan ohad_dan 036767960
// EXERCISE : oop ex3 2008
// DESCRIPTION:
// An interface for gui view.
//###############
package oop.ex3.fileSearchView;

import java.io.IOException;

import javax.swing.JFileChooser;
/**
 * An interface for gui view.
 */
public interface GUIView {
	//********************************************************************
	//  Finals :                                                         *
	//********************************************************************
    public static final int FILES_ONLY = JFileChooser.FILES_ONLY;
    public static final int FILES_AND_DIRS = 
    	JFileChooser.FILES_AND_DIRECTORIES;
    public static final int DIRS_ONLY = JFileChooser.DIRECTORIES_ONLY;
    //********************************************************************
	//  Methods :                                                        *
	//********************************************************************
    /**
     * Returns log tab.
     * @return Log tab.
     */
    public LogTabInterface getLogView();
    /**
     * Returns Setup tab.
     * @return Setup tab.
     */
    public SetupTabInterface getSetupView();
    /**
     * Returns search tab.
     * @return Search tab.
     */
    public SearchTabInterface getSearchView();
    /**
     * Returns current program status.
     * @return Current program status.
     */
    public String getStatus();
    /**
     * Sets program status.
     * @param str Text to be set at the status label.
     */
    public void setStatus(String str);
    /**
     * Opens save dialog and returns the selected file\directory path.
     * @return Path of the selected file\directory.
     * @throws IOException In case of read error. 
     */
    public String showSaveDialog() throws IOException;
    /**
     * Opens save dialog and returns the selected file\directory path.
     * @param constraints directory\file only.
     * @return Path of the selected file\directory.
     * @throws IOException In case of read error. 
     */
    public String showOpenDialog( int constraints ) throws IOException;
}
